﻿using System;
using System.Collections.Generic;
using System.Text;

namespace CitrixSystemVerifier
{
    class Variable
    {
        public Variable()
        {
        }

        public Variable(string Value)
        {
            m_Value = Value;
        }

        public Variable(string Context, string Value)
        {
            m_ContextValues.Set(Context, Value);
        }

        public Variable(KeyValuePair<string, string>[] ContextValues)
        {
            for (int i = 0; i < ContextValues.Length; i++)
            {
                m_ContextValues.Set(ContextValues[i].Key, ContextValues[i].Value);
            }
        }

        public bool IsValid ()
        {
            if (string.IsNullOrEmpty(m_Value) && m_ContextValues.IsEmpty())
                return false;
            return true;
        }

        string m_Value;

        public string Value
        {
            get { return m_Value; }
            set { m_Value = value; }
        }

        public List<string> GetContextValue(string Context)
        {
            List<string> ValuesMatched = m_ContextValues.Get(Context);
            if ((ValuesMatched == null) || (ValuesMatched.Count == 0))
            {
                ValuesMatched = new List<string>();
                ValuesMatched.Add(m_Value);
            }
            return ValuesMatched;
        }

        public void SetContextValue(string Context, string Value)
        {
            m_ContextValues.Set(Context, Value);
        }

        public void SetContextValue(ContextValue cv)
        {
            m_ContextValues.Set(cv);
        }

        private ContextValues m_ContextValues = new ContextValues();
    }
}
